package InternetCode.Socket.Exa6_2;


import java.net.*;

/**
 * 获取远程连接套接字的ip和端口号
 */
public class ClientSocketFrame {
    // 声明Socket对象
    private Socket socket;

    /**
     * 连接套接字方法
     */
    private void connect() {
        System.out.println("尝试连接......\n");
        try {
            // 客户端根据ip和端口号尝试创建socket时，
            // 其实就是建立一个tcp连接
            //如果创建成功则是连接成功
            socket = new Socket("127.0.0.1", 1978);
            System.out.println("完成连接。\n");
            // 获得远程服务器的地址
            InetAddress netAddress = socket.getInetAddress();
            // 获得远程服务器的IP地址
            String netIp = netAddress.getHostAddress();
            // 获得远程服务器的端口号
            int netPort = socket.getPort();
            // 获得客户端的地址
            InetAddress localAddress = socket.getLocalAddress();
            // 获得客户端的IP地址
            String localIp = localAddress.getHostAddress();
            // 获得客户端的端口号
            int localPort = socket.getLocalPort();
            System.out.println("远程服务器的IP地址：" + netIp + "\n");
            System.out.println("远程服务器的端口号：" + netPort + "\n");
            System.out.println("客户机本地的IP地址：" + localIp + "\n");
            System.out.println("客户机本地的端口号：" + localPort + "\n");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        ClientSocketFrame client = new ClientSocketFrame();
        client.connect();
    }
}
